home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / game / role / ldmud-3.2-bin.lha / mud / doc / efun / regreplace.de < prev    next >
Text File  |  2001-07-14  |  2KB  |  50 lines

  1. SYNOPSIS
  2.     string regreplace(string txt, string pattern, 
  3.         string|closure replacepattern, int flags)
  4.  
  5. BESCHREIBUNG
  6.     Die Funktion durchsucht den String txt nach einem Vorkommen
  7.     des regulaeren Ausdrucks pattern, und ersetzt ihn durch
  8.     den String replacepattern. (replacepattern kann auch eine Closure
  9.     sein. Sie bekommt als argument den passenden Substring und muss
  10.     den Ersatzstring zurueckliefern.)
  11.  
  12.     Im replacestring kann man via '&' auf den zum Suchausdruck
  13.     passenden Teilstring im Original zugreifen. Mit \n (wobei n
  14.     eine Ganzzahl ist) kann man auf den n-ten Unterausdruck
  15.     des regulaeren Ausdrucks zugreifen. Um "&" oder "\\1" als
  16.     Ersetzung zu erreichen, muss "\\&" bzw "\\\\1" verwendet werden.
  17.  
  18.     Beim Flag bestimmt ein gesetztes Bit 0, dass der Ausdruck so oft
  19.     wie vorhanden ersetzt wird, sonst nur das erste Auftreten.
  20.     Bit 1 bestimmt, ob der regulaere Ausdruck 'ed' oder 'sed' kompatibel
  21.     ist (Bit geloescht) oder 'ex' kompatibel (gesetzt).
  22.  
  23.     Die Funktion wirkt wie s/pattern/replacepattern/flags in
  24.     Editoren wie vi oder sed. Sie ist besonders gut geeignet um
  25.     variable Strings zu ersetzen, im Gegensatz zu regexplode, wo
  26.     man den String nur nach einem regulaeren Ausdruck zerlegen kann.
  27.  
  28. BEISPIEL
  29.     string msgin;
  30.  
  31.     /* Sucht nach 'teilt Dir mit: ' und schliesst den nachfolgenden
  32.     ** Text mit <underline> und </underline> ein; bei jedem Auftreten.
  33.     */
  34.     msgin = regreplace(msgin, "teilt Dir mit: (.*)",
  35.          "teilt Dir mit: <underline>\\1</underline>", 1);
  36.     
  37.     /* Ersetzt die <underline> html-Tags durch die vt100
  38.     ** Escape-Sequenzen fuer Unterstreichung
  39.     */
  40.     txt = regreplace(txt, "<underline>", "<ESC>[5m", 1);
  41.  
  42.     /* Ersetzt das Wort HOUSE in Kleinbuchstaben. */
  43.     txt = regreplace(txt, "HOUSE", #'lower_case, 1);
  44.  
  45. AUTOR
  46.     Marcus@TAPPMud schrieb die Original-efun (und die englische Manpage)
  47.     
  48. SIEHE AUCH
  49.     regexp(E), regexplode(E), sscanf(E)
  50.